package com.ys.mapper.hr;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.ys.entity.hr.TwlStockRunning;

@Mapper
public interface HrMapper {
	
	/*
	 * 获取运营公司简称
	 */
	public String getVgsjc(@Param("vgsbm")String vgsbm);
	
	/**
	 * 新增实体
     * @author Jason
	 */
	int insertTwlStockRunning(TwlStockRunning entity);

	/*
	 * 根据物料入库单号，删除物料入库明细
	 */
	void deleteBatchTwlStockInDetailByBid(@Param("bidStockIn")String bidStockIn);

	/*
	 * 根据物料出库单号，删除物料出库明细
	 */
	void deleteTwlStockOutDetailByBid(@Param("bidStockOut")String bidStockOut);

	/*
	 * 根据物料转移单号，删除物料转移明细
	 */
	void deleteTwlStockTransferDetailByBid(@Param("bidStockTransfer")String bidStockTransfer);

	/*
	 * 根据物料借用单号，删除物料借用明细
	 */
	void deleteTwlStockBorrowDetailByBid(@Param("bidStockBorrow")String bidStockBorrow);

	/*
	 * 根据费用划拨单号，删除费用划拨明细
	 */
	void deleteTcwExpenseAllocationItemByBid(@Param("pbid")String pbid);

	/*

	 * 根据库存出库单号，删除费用划拨明细
	 */
	void deleteTccStockOutboundItemByBid(@Param("bid")String bid);

	/*
	 * 根据库存出库单号，删除费用划拨明细
	 */
	void deleteTccStockStoreItemByBid(@Param("bid")String bid);

	/*
	 * 根据费用划拨单号，删除费用划拨明细
	 */
	void deleteTcwExpenseAllocationByManageItemByBid(@Param("pbid")String pbid);

	/*
	 * 根据费用结算单号，删除费用结算单明细
	 */
	void deleteTcwExpenseSettlementItemByBid(@Param("pbid")String pbid);
	/*
	 * 根据费用结算单号，删除费用结算单明细
	 */
	void deleteTccLogisticsServiceProviderItemById(@Param("pid")Long pid);

	/*
	 * 根据费用划拨单号，删除费用划拨明细
	 */
	void deleteTcwCompanyAccountTransferItemByBid(@Param("pbid")String pbid);

	/*
	 * 根据VAT申请单号，删除不在ID范围内的明细
	 */
	void deleteBatchThrVatApplyDetailByBid(@Param("pbid")String pbid, @Param("ids")String ids);

	/*
	 * 根据VAT申请详情号，删除C88文件
	 */
	void deleteBatchThrVatApplyDetailCbbByDetailId(@Param("vatApplyDetailId")Long vatApplyDetailId);

	/*
	 * 物料库存数量变动
	 */
	public void updateTwlStockOfNum(@Param("stockId")Long stockId, @Param("changeNum")Integer changeNum);

	/*
	 * 物料库存数量冻结和解冻
	 */
	public void updateTwlStockWhenFrozen(@Param("stockId")Long stockId, @Param("frozenNum")Integer frozenNum);

	/*
	 * 开辟节点-运营公司树
	 */
	public void updateThrOperateCompanyApplyNodeForInsertNode(@Param("nodeRgt")Long nodeRgt, @Param("nodeAdd")Long nodeAdd);

	/*
	 * 挪动节点-运营公司树
	 */
	public void updateThrOperateCompanyApplyNodeForMoveNode(@Param("nodeLft")Long nodeLft, @Param("nodeRgt")Long nodeRgt, @Param("nodeAdd")Long nodeAdd, @Param("floorAdd")Integer floorAdd);

	/**
	 * 删除员工身份证照片信息表，根据员工工号信息
	 */
	void delThrUserIdCardPhotoByUserId(@Param("userId")String userId);

    /**
     * 获取员工工号，最大
     */
    Map<String, Object> getMaxUserId();

	/**
	 * 根据员工工号，删除照片信息
	 */
	void deleteUserIdCardPhotoByUserId(@Param("userId")String userId);

	/**
	 * 根据Bid，删除运营人员登记详情
	 */
	void deleteOperateRegistrationItemByPbid(@Param("pbid")String pbid);
	/**
	 * 根据Bid，删除运营人员登记详情
	 */
	void deleteCanvassApplyItemByPbid(@Param("pbid")String pbid);

	/**
	 * 根据员工工号，删除员工附件信息表
	 */
	void deleteUserArchivesFileByUserId(@Param("userId")String userId);

	/**
	 * 根据员工工号，修改员工名字
	 */
	void updateUserNameByUserId(@Param("userId")String userId,@Param("userName")String userName);

	//获取旧用户信息表中的手机号信息
	List<Map<String, Object>> getUserPhoneByOld();

	//根据用户id修改用户钉钉id
	int updateUserDingDingIdByUserId(@Param("userId") String userId,@Param("enWeChatId") String enWeChatId);


	/**
	 * 根据员工工号，修改员工钉钉id
	 */
	void updateUserDingIdByUserId(@Param("userId")String userId,@Param("dingDingId")String dingDingId);

	/**
	 * 根据公司编码获取上级公司信息
	 */
	Map<String, Object> getParentCompanyInfo(@Param("vgsbm")String vgsbm);

	/**
	 * 根据公司编码获取上级公司信息
	 */
	Map<String, Object> getParentParentCompanyInfo(@Param("vgsbm")String vgsbm);

	/**
	 * 修改运营公司管理表信息，兼容1.0
	 */
	void updateThrOperateCompanyApplyByOld(Map<String,Object> msg);

	//修改用户状态信息
	public void updateUserStatusByOld(@Param("userId") String userId,@Param("disabled") int disabled,@Param("userState") String userState,@Param("status") int status);


	/**
	 * 根据员工工号，删除员工档案过错与奖励记录表
	 */
	void deleteUserArchivesRecorByUserId(@Param("userId")String userId);
}